//------------------------------------------------------------------------------
// <copyright company="Telligent Systems">
//     Copyright (c) Telligent Systems Corporation.  All rights reserved.
// </copyright> 
//------------------------------------------------------------------------------

using CommunityServer.Components;

namespace CommunityServer.Blogs.Components
{
    /// <summary>
    /// Base class for all Weblog Syndication feeds
    /// </summary>
    public abstract class BaseWeblogSyndicationHandler : BaseSyndicationHandler
    {

		private WeblogConfiguration _blogConfig;
		protected WeblogConfiguration BlogConfig
		{
			get
			{
				if (_blogConfig == null)
					_blogConfig = WeblogConfiguration.Instance();

				return _blogConfig;
			}
		}


        public BaseWeblogSyndicationHandler()
        {
        }

		/// <summary>
		/// The length of time the feed should be cached in seconds.
		/// </summary>
		protected override int CacheTime
		{
			get
			{
				return CSCache.SecondFactorCalculate(BlogConfig.RssCacheWindowInSeconds);
			}
		}



        /// <summary>
        /// Appends http://Host:Port to all blog urls
        /// </summary>
        protected override string BaseUrl
        {
            get
            {
                return Globals.HostPath(Context.Request.Url);
            }
        }

        private Weblog currentWeblog = null;
        protected override Section GetCurrentSection
        {
            get
            {
                if(currentWeblog == null)
                {
					CSContext cntx = CSContext.Current;
                    currentWeblog = Weblogs.GetWeblog(cntx.ApplicationKey);
                    Permissions.AccessCheck(currentWeblog,Permission.View,cntx.User);
                }

                return currentWeblog;
            }
        }

        protected Weblog CurrentWeblog
        {
            get{ return CurrentSection as Weblog;}
        }


    }
}
